package com.tanjun.publicservice.web.service.flowable;

import com.tanjun.pubilcservice.response.workflow.ProcessDefineDto;

import java.util.List;

/**
 * 流程服务
 */
public interface ProcessService {
    /**
     * 部署流程
     * @param userId 用户id
     * @param processName 流程名称
     * @param xml 流程配置文件内容
     * @return 流程部署id
     */
    String deploy(Object userId,String processName,String key, String xml);
    /**
     * 删除流程
     * @param deploymentId 流程id
     */
    void deleteByProcessId(String deploymentId);

    /**
     * 暂停流程
     * @param deploymentId 流程id
     */
    void stopProcess(String deploymentId);
    /**
     * 重新激活暂停流程
     * @param deploymentId 流程id
     */
    void activeProcess(String deploymentId);

    /**
     * 获取流程定义
     * @param deploymentId 定义id
     * @return 返回流程定义基本信息
     */
    ProcessDefineDto getProcessDefinition(String deploymentId);

    /**
     * 获取流程定义xml
     * @param deploymentId 流程id
     * @return  返回流程定义xml内容
     */
    String getProcessDefinitionXML(String deploymentId) ;
    /**
     * 获取所有流程定义
     * @return 流程定义列表
     */
    List<ProcessDefineDto> getAllProcessDefinitions();
}
